code: public static BundleAdjustment<SceneStructureProjective> bundleDenseProjective(boolean robust,
  																				   @Nullable ConfigBundleAdjustment config ) {
  		if( config == null )
  			config = new ConfigBundleAdjustment();
  
  		UnconstrainedLeastSquaresSchur<DMatrixRMaj> minimizer;
  
  		if( config.configOptimizer instanceof ConfigTrustRegion )
  			minimizer = FactoryOptimization.doglegSchur(robust,(ConfigTrustRegion)config.configOptimizer);
  		else
  			minimizer = FactoryOptimization.levenbergMarquardtSchur(robust,(ConfigLevenbergMarquardt)config.configOptimizer);
  
  
  		return new BundleAdjustmentSchur_DDRM<>(minimizer,
  				new BundleAdjustmentProjectiveResidualFunction(),
  				new BundleAdjustmentProjectiveSchurJacobian_DDRM(),
  				new CodecSceneStructureProjective());
  	}
docs: Returns bundle adjustment with a sparse implementation for projective reconstruction. In most stiuations this is
  what you want to use, however dense bundle adjustment is available if the problem is small and degenerate.
  
  @param robust If true a smaller but robust solver will be used.
  @param config (Optional) configuration
  @return bundle adjustment